package jv.redis.datatype.set;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import redis.clients.jedis.Jedis;

public class RedisSet {
	Jedis jedis;
	@Before
	public void initRedis(){
		jedis = new Jedis("redis://192.168.1.108:6379");
	}
	
	@After
	public void closeRedis(){
		//注意不要使用jedis.shutdown()，这样会把服务器停掉。。。
		jedis.close();
	}
	
	/**
	 * 下面命令的中文解释请参考https://my.oschina.net/u/3049601/blog/1162577
	 */
	@Test
	public void setOptions(){
		jedis.sadd("tag:person:sex:male", "hary");
		jedis.sadd("tag:person:sex:female", "lucy");
		System.out.println(jedis.smembers("tag:person:sex:female"));
		System.out.println(jedis.sunion("tag:person:sex:male","tag:person:sex:female"));
		/*
		jedis.sdiff();	//求差集
		jedis.sinter();	//求交集
		*/
		jedis.srem("tag:person:sex:female", "lucy");
		System.out.println(jedis.smembers("tag:person:sex:female"));
	}
	
	@Test
	public void setOptionsExtends(){
		jedis.sadd("tag:person:sex:male", "hary");
		jedis.sadd("tag:person:sex:female", "lucy");
		
		//在实际生产过程中，key的命名需要在不影响阅读的基础上尽可能的简化
		//我在这里为了好理解，就写全的了
		jedis.sadd("tag:person:profession:programmer", "hary");
		jedis.sadd("tag:person:profession:programmer", "lucy");
	}
}
